levels of abstraction in verilog